from rest_framework import serializers

from .models import *

# TMgold TMgoldToEvent AllGold
# TMgold 虚拟币模型对应序列化器
# 虚拟币-时之砂砾序列化器
class TMgoldSerializer(serializers.ModelSerializer):
    """
    虚拟币-时之砂砾序列化器
    """
    created_date = serializers.DateTimeField(required=False, format='%Y-%m-%d %H:%M:%S')
    last_edited_date = serializers.DateTimeField(required=False, format='%Y-%m-%d %H:%M:%S')
    class Meta:
        model = TMgold
        fields = "__all__"
# 虚拟币-时之砂砾下拉选序列化
class TMgoldOptionSerializer(serializers.ModelSerializer):
    """
    虚拟币-时之砂砾下拉选序列化
    """
    class Meta:
        model = TMgold
        fields = ['id' , 'way', 'value','usetime','lastuser' ,'created_by']


# TMgoldToEvent 事件链模型对应序列化器
# 事件链-时之光轮序列化器
class TMgoldToEventSerializer(serializers.ModelSerializer):
    """
    事件链-时之光轮序列化器
    """
    created_date = serializers.DateTimeField(required=False, format='%Y-%m-%d %H:%M:%S')
    last_edited_date = serializers.DateTimeField(required=False, format='%Y-%m-%d %H:%M:%S')
    class Meta:
        model = TMgoldToEvent
        fields = "__all__"
# 事件链-时之光轮下拉选序列化器
class TMgoldToEventOptionSerializer(serializers.ModelSerializer):
    """
    事件链-时之光轮下拉选序列化器
    按金币收缩事件链可以得到整个金币的流动故事
    """
    class Meta:
        model = TMgoldToEvent
        fields = ['id' , 'state', 'gold','event']

# AllGold 总数据模型对应序列化器
class AllGoldSerializer(serializers.ModelSerializer):
    """
    总数据序列化器
    存储所有金币价值数据，或者不写直接用统计，所有用户所有的金币累加值为总盘的剩余
    用户的增加和充值可以补充消耗，当有消耗又没有新用户和充值时
    消耗的是创建者初始投入的资源，资源消耗殆尽则项目死亡
    """
    class Meta:
        model = AllGold
        fields = ['nowvalue']